Функції обліку часу виконання програми в системах реального часу.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2008
Тип роботи:
Лабораторна робота
Предмет:
Інші

Частина тексту файла

Міністерство освіти та науки України Національний університет “Львівська політехніка” Кафедра ЕОМ Лабораторна робота №3 з диcципліни: «Програмовані системи реального часу» на тему: «Функції обліку часу виконання програми в системах реального часу. » Мета роботи: Проаналізувати механізми обліку часу в системах реального часу, навчитися вимірювати часові інтервали, реалізації функцій затримки і механізми очікування надходженні подій. Виміряти час виконання системних функцій системи UCOS-II використовуючи RDTSC інструкцію Pentium процесора. Теоретичні відомості При розробці програмного забезпечення систем реального часу часто постають задачі вимірювання часових інтервалів виконання визначених фрагментів коду із достатньо високою точністю. Із цими задачами пов’язані питання формування визначених затримок, зокрема при роботі із апаратними засобами. Для вирішення таких питань можуть бути використані декілька механізмів. Використання системного таймера операційної системи. Практично будь-яка операційна система реального часу використовує переривання від системного таймера для реалізації механізму квантування часу процесора, реалізації системних затримок, таймаутів. В системі UCOS-II всі функції із використанням таймаутів, системна функція затримки OSTimeDly використовують лічильники, які змінюються кожного переривання таймера. При виклику функцій затримки, які використовують цей механізм, ресурси процесора, які використовують цей механізм перерозподіляються між іншими задачами, тобто, процесор може виконувати корисну роботу. Час затримки обмежується тільки розрядністю змінних, використаних під внутрішні лічильники переривань таймера і може бути великим. Використання цього механізму характеризується наступними недоліками: фактичний час затримки визначається біжучими станами процесів в системі і може змінюватись як в більшу так і меншу сторони, тобто спостерігається дрожання (jitter) затримки. затримки, які можуть бути отримані в такий спосіб не можуть бути дуже малими. Типові значення – одиниці, десятки мілісекунд. Це зумовлено тим, що частота переривання системного таймера не може бути встановлена занадто високою. Чому? (пояснити самостійно!) Використання годинника реального часу. В багатьох системах передбачена наявність апаратного годинника реального часу, який інкрементується певну кількість разів на секунду, наприклад, раз в секунду. Оскільки дискретність такого годинника є достатньо великою, то він не може бути використаний для вимірювання/формування малих затримок. Використання апаратно-залежних механізмів. Розглянемо їх на прикладі архітектури IBM сумісного комп’ютера. Перший спосіб полягає у використанні другого каналу системного таймера для обліку часових інтервалів. Всі ЕОМ даного класу містять 16-розрядний таймер-лічильник, сумісний із Intel8254, вхід якого подається сигнал із частотою 1.19318 MHz. Оскільки лічильник є 16 розрядний, то максимальний інтервал часу може бути виміряний рівний 65536*0.838097 = 55мс. Цей механізм підтримується системою UCOS-II. В бібліотеці функцій, прототипи яких наведено в pc.h, вказано три функції: PC_ElapsedInit() ініціалізація системи обліку часу. PC_ElapsedStart() – встановлення часової мітки. Використовується для позначення першої ділянки коду, час виконання якого слід виміряти. PC_ElapsedStop() – обчислення часу виконання фрагменту програми із моменту виклику функції PC_ElapsedStart, в мікросекундах. Інший, більш досконалий механізм, полягає у використанні інструкції RDTSC (Real Time Stamp Counter) процесорів Pentium і вище. В процесорі вмонтований 64-лічильник, який інкрементується кожен машиннимй такт. В результаті виконання цієї інструкції значення лічильника заносяться в пару 32 розрядних регістрів. edx, eax. Оскільки лічильник 64 розрядний, то необхідно виконувати операції над 64 розрядними числами, і вносити поправку на можливе переповнення лічильника. Для обчислення конкретних часових інтервалів перш за все необхідно визначити частоту процесора, використовуючи точні ча...
Антиботан аватар за замовчуванням

22.03.2013 13:03

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини